package simco.framework.gui.graph.iface;

import java.awt.Graphics2D;

/**
 * Definuje objekt schopny byt vykreslen (na platno)
 * a ktery prechazi mezi dvema stavy 
 * vykreslovan/nevykreslovan.
 * 
 * @author Matej Prokop, mythge@students.zcu.cz
 */
public interface Drawable 
{
	/**
	 * Vykresli objekt na platno
	 *  
	 * @param g2 graficky objekt zajistujici vykreslovani
	 */
    public void drawObject(Graphics2D g2);
    
    /**
     * Nastavi viditelnost objektu, tj. je-li objekt
     * vykreslovan ci ne
     * @param newValue logicka hodnota stanovujici viditelnost
     */
    public void setVisibility(boolean newValue);
    
    /**
     * Vraci viditelnost objekut
     * @return true pokud je objekt vykreslovan (viditelny)
     */
    public boolean isVisible();
}
